package cn.jolyoulu.cmnservice.entity.dto;


import cn.jolyoulu.cmnservice.entity.po.HoldUser;
import cn.jolyoulu.cmnservice.entity.po.SysMenu;
import lombok.Data;
import lombok.experimental.Accessors;
import cn.jolyoulu.cmnservice.utils.HoldUserUtils;

import java.time.LocalDateTime;

/**
 * @Author LuZhouJin
 * @Date 2023/3/16
 */
@Data
@Accessors(chain = true)
public class AddMenuDTO {

    /**
     * 父级编号
     */
    private String parentId;

    /**
     * 菜单名称
     */
    private String menuName;

    /**
     * 菜单类型（1菜单 2权限）
     */
    private Integer menuType;

    /**
     * 本级排序号（升序）
     */
    private Integer treeSort;

    /**
     * 菜单图标
     */
    private String icon;

    /**
     * 权限标识
     */
    private String permission;

    /**
     * 路由地址
     */
    private String path;

    /**
     * 组件路径
     */
    private String component;

    /**
     * 是否隐藏路由: 0否,1是
     */
    private Integer hidden;

    /**
     * 是否显示（0否 1是）
     */
    private Integer isShow;

    public SysMenu toSysMenu() {
        HoldUser holdUser = HoldUserUtils.get();
        return new SysMenu()
                .setParentId(this.parentId)
                .setMenuName(menuName)
                .setMenuType(menuType)
                .setTreeSort(treeSort)
                .setIcon(icon)
                .setPermission(permission)
                .setComponent(component)
                .setHidden(hidden)
                .setIsShow(isShow)
                .setPath(path)
                .setCreateBy(holdUser.getCreateBy())
                .setCreateTime(LocalDateTime.now())
                .setUpdateBy(holdUser.getUpdateBy())
                .setUpdateTime(LocalDateTime.now())
                ;
    }
}
